package com.east.service.task;

import com.east.bean.Task;
import com.east.bean.TaskImage;
import com.east.bean.User;
import com.east.utils.Pagenation;
import com.github.pagehelper.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface TaskService {
    /**
     * 分页查询全部
     * @param pagenation
     * @return
     */
    Page<Task> selectAll(Pagenation pagenation,User user);

    /**
     * 新增任务分配
     * @param task
     * @return
     */
    int insert(Task task);

    /**
     * 个人添加
     * @param task
     * @return
     */
    int insertByOwn(Task task,User token);

    /**
     * 删除
     * @param ids
     * @return
     */
    int delete(Integer[] ids);

    /**
     * 修改
     * @param task
     * @return
     */
    int update(Task task);

    /**
     * 根据关键字，项目，类型，工作量，指派人员，完成状态分页查询
     * @param pagenation
     * @param task
     * @return
     */
    Page<Task> selectBy(Pagenation pagenation,Task task);

    /**
     * 完成项目(修改完成状态为1)
     */
    int updateByState(Task task);
    /**
     * 数量统计
     */
    int countByStatus(Task task);
    /**
     * 类型情况（项目名称，项目总工作量）
     */
    List<Task> selectPro();
    /**
     * 按类型查询工作量
     */
    List<Task> selectSumWork();

    /**
     * 上传文件
     * @param files
     * @param tId
     * @return
     */
    List<TaskImage> uploadTaskImage(MultipartFile[] files,Integer tId) throws IOException;

    /**
     * 删除图片
     */
    int deletepho(String url);

    /**
     * 各部门工作量总和
     */
    int sumWork();
    /**
     * 查看详情
     */
    Task selectBytId(Task task);
}
